package com.eliza.livedata.activity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.lifecycle.ViewModelProvider
import com.eliza.livedata.R
import com.eliza.livedata.vm.AddTimeVm
import java.util.*


/**
 * 独立于配置变化
 * viewModel  ------------> destroy
 * Activity -->create  ---> destroy
 * */

class AddTimeActivity : AppCompatActivity() {
    lateinit var vm: AddTimeVm
    var flag = true

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add_num)

        val tv = findViewById<TextView>(R.id.add_num_tv)

        /* 获取 AddNumVm 对应的 viewModel (类似代理对象)*/

        /** 不要向ViewModel中传入Context，会导致内存泄漏
        如果要使用Context，请使用AndroidViewModel中的Application
         */
        vm = ViewModelProvider(
            this,
            ViewModelProvider.AndroidViewModelFactory(application)
        ).get(AddTimeVm::class.java)

        tv.text = vm.currentSecond.value.toString()

        /** 观察者 */
        vm.currentSecond.observe(this) { it ->
            tv.text = it.toString()
        }
        if (flag) {
            StartTimer()
            flag = false
        }
    }


    fun StartTimer() {
//        定时器，每隔一秒中改变一下时间
        Timer().schedule(object : TimerTask() {
            override fun run() {
                /**
                 * 非UI 线程使用 postValue
                 */
                vm.currentSecond.postValue(vm.currentSecond.value?.plus(1))
            }
        }, 1000, 1000)

    }


}